// 负责操作localStorage的帮助文件
/*
* 1.获取数据:var Str = localStorage.getItem(key);
* 2.添加和追加数据:localStorage.setItem(key,value),value是一个字符串
* 3.移除数据：localStorage.removeItem(key);
*/

//1.0定义常量key,将来操作的localStorage中的数据都以这个key来作为标识
export const KEY = 'goodsdata';
export var valueObj = {goodsid:0,count:0};

//2.0实现数据的增加
//value:格式：｛goodsid:87,count:0｝
export function setItem(value){
    //1.0获取json格式
    var jsonString = localStorage.getItem(KEY);
    jsonString = jsonString || '[]';
    var arr = JSON.parse(jsonString);
    //2.0将value追加进入arr
    arr.push(value);
    //3.0将arr转换成json字符串保存起来
    localStorage.setItem(KEY,JSON.stringify(arr));
}

//3.0获取数据
export function getItem(value){
    var jsonString = localStorage.getItem(KEY);
    //jsonString:是一个标准是json格式
    //将json格式字符串转换成js对象
    jsonString = jsonString || '[]';
    return JSON.parse(jsonString);
}

//4.0移除数据
export function removeItem(value){
   
}

//5.0将localstorage中的数据全部整合成一个对象的形式
/*
*格式：
*{
*   商品的id：商品的购买数量，
*   商品的id：商品的购买数量
*}
*真正的数据是：
*{
*   87：4，
*   88：1
*}
*/
export function getgoodsObj(){
    //获取数组
    //arr的格式[{"goodsid":"88","count":4},{"goodsid":"88","count":6}]
    var arr = getItem();
    //将arr数组中的goodid相同的多个对象合并成同一个对象
    var resObj = {};
    for(var i=0;i<arr.length;i++){
        var item = arr[i];
        if(!resObj[item.goodsid]){
            //如果没有当前商品的数据，则添加一个数据
            resObj[item.goodsid] = item.count;
        }else{
            //已经有当前商品的数据了，则将count追加
            var count = resObj[item.goodsid];
            resObj[item.goodsid] = count+item.count;
        }
    }

    return resObj;
}

//6.0更新数据
//obj的格式 ：｛goodsid:87,type:'add'｝
export function updateData(obj){
    var arr = getItem();

    var count = 1;
    if(obj.type == 'add'){
        //加
        arr.push({goodsid:obj.goodsid,count:count})
    }else{
        //减
        for(var i=0;i<arr.length;i++){
            //如果这个对象中的count值等于1，则删除这个对象，否则将这个对象的count减1以后保存回去
            if(arr[i].goodsid == obj.goodsid){
                if(arr[i].count>1){
                    arr[i].count = arr[i].count-1;
                    break;
                }else{
                //删除此对象
                    arr.splice(i,1);
                    break;
                }
            }
        }
    }
    //将最新的arr保存会loaclStorage中
    localStorage.setItem(KEY,JSON.stringify(arr));
}
